package com.chanzany.interview_secondary.jvm.jvm_01_GCRoots;

/**
 要进行垃圾回收，如何判断一个对象是否可以被回收
 --引用计数法
 --枚举根节点做可达性分析（根搜索路径）

可以作为GC Roots的对象
 1. 虚拟机栈(栈帧中的局部变量区)中引用的对象
 2. 方法区中的类静态属性引用的对象
 3. 方法区中常量引用的对象
 4. 本地方法栈中JNI(Native方法)引用的对象

*/
public class GCRootsDemo {
    private byte[] bytes = new byte[100*1024*1024];

//    private static GCRootsDemo2 t2; 方法区中的类静态属性引用的对象
//    private static final GCRootsDemo3 t3 = new GCRootsDemo3(); 方法区中常量引用的对象

    private static void m1(){
        GCRootsDemo t1 = new GCRootsDemo(); //虚拟机栈(栈帧中的局部变量区)中引用的对象
        System.gc();
        System.out.println("第一次GC完成");
    }

    public static void main(String[] args) {
        m1();
    }

}
